阅读更多
引用
文章来源:CSDN博客

前言:本文建议有一定Python基础和前端(html,js)基础的盆友阅读。

金秋九月,丹桂飘香,在这秋高气爽,阳光灿烂的收获季节里,我们送走了一个个暑假余额耗尽哭着走向校园的孩籽们,又即将迎来一年一度伟大祖国母亲的生日趴体(无心上班,迫不及待想为祖国母亲庆生!)。

那么问题来了,去哪儿玩呢?百度输了个“国庆”,出来的第一条居然是“去哪里旅游人少”……emmmmmmm,因缺思厅。

于是我萌生了通过旅游网站的景点销量来判断近期各景点流量情况的想法(这个想法很危险啊)。

所以这次的目标呢,是爬去哪儿网景点页面,并得到景点的信息,大家可以先思考下大概需要几步。

1.百度的地图API和echarts

这次正好爬的是数据,我决定用数据的好基友——图表来输出我爬取的数据,也就是说我要用爬取的景点销量以及景点的具体位置来生成一些可视化数据。

安利一下百度的地图APIecharts,前者是专门提供地图API的工具,听说好多APP都在用它,后者是数据处理居家旅行的好伙伴,用了之后,它好,我也好(隐约觉得哪里不对)。

API是什么,API是应用程序的编程接口,就好像插头与插座一样,我们的程序需要电(这是什么程序?),插座中提供了电,我们只需要在程序中写一个与插座匹配的插头接口,就可以使用电来做我们想做的事情,而不需要知道电是如何产生的。

再详细一点讲呢,就好比米酱的小说写完啦!但她还想把小说出成书,可是怎么出书捏?米酱不会呀,这时候米酱发现某出版社提供了出版服务,出版社表示只需要提供小说的正文、以及一个设计的封面就可以啦,于是米酱将小说保存成了word格式,又画了个封面jpg图,发给了出版社,没过多久米酱就拿到了一本装订好的书啦(此段纯属虚构,专业出版人士尽管打我,我不会承认的)。

在米酱出书的过程中,米酱并不需要知道出版社是怎么印刷这个书的,也不需要知道是怎么装订这个书的,米酱只需要提供出版社所要求的东西即可。

2.确定输出文件

有人可能说,我已经懂了api是啥意思了,可是咋个用呢。关于这一点,米酱很负责任的告诉你:我也不会。

但是!

百度地图提供了很多API使用示例,有html基础,大致可以看懂,有js基础就可以尝试改函数了(不会jsの我默默地复制源代码),仔细观察源代码,可以知道热力图的生成主要的数据都存放在points这个变量中。

这种[{x:x,x:x},{x:x,x:x}]格式的数据,是一种json格式的数据,由于具有自我描述性,所以比较通俗易懂,大概可以知道这里的三个值,前俩个是经纬度,最后一个应该是权重(我猜的)。

也就是说,如果我希望将景点的热门程度生成为热力图,我需要得到景点的经纬度,以及它的权重,景点的销量可以作为权重,并且这个数据应该是json格式的呈现方式。

echarts也是一样滴(*\^__^*)。

3.爬取数据

实这次的爬虫部分是比较简单的(如果你有跟着我的文爬过网站的话)。

分析网址(去哪儿景点)→爬取分页中信息(景点经纬度、销量)→转为json文件。

分析去哪儿景点页的网址可得出结构:http://piao.qunar.com/ticket/list.htm?keyword=搜索地点&region=&from=mpl_search_suggest&page=页数

这次没有用正则来匹配内容,而使用了xpath匹配,肥肠好用。
def getList():
    place = raw_input('请输入想搜索的区域、类型(如北京、热门景点等):')
    url = 'http://piao.qunar.com/ticket/list.htm?keyword='+ str(place) +'&region=&from=mpl_search_suggest&page={}'
    i = 1
    sightlist = []
    while i:
        page = getPage(url.format(i))
        selector = etree.HTML(page)
        print '正在爬取第' + str(i) + '页景点信息'
        i+=1
        informations = selector.xpath('//div[@class="result_list"]/div')
        for inf in informations: #获取必要信息
            sight_name = inf.xpath('./div/div/h3/a/text()')[0]
            sight_level = inf.xpath('.//span[@class="level"]/text()')
            if len(sight_level):
                sight_level = sight_level[0].replace('景区','')
            else:
                sight_level = 0
            sight_area = inf.xpath('.//span[@class="area"]/a/text()')[0]
            sight_hot = inf.xpath('.//span[@class="product_star_level"]//span/text()')[0].replace('热度 ','')
            sight_add = inf.xpath('.//p[@class="address color999"]/span/text()')[0]
            sight_add = re.sub('地址:|(.*?)|\(.*?\)|,.*?$|\/.*?$','',str(sight_add))
            sight_slogen = inf.xpath('.//div[@class="intro color999"]/text()')[0]
            sight_price = inf.xpath('.//span[@class="sight_item_price"]/em/text()')
            if len(sight_price):
                sight_price = sight_price[0]
            else:
                i = 0
                break
            sight_soldnum = inf.xpath('.//span[@class="hot_num"]/text()')[0]
            sight_url = inf.xpath('.//h3/a[@class="name"]/@href')[0]
            sightlist.append([sight_name,sight_level,sight_area,float(sight_price),int(sight_soldnum),float(sight_hot),sight_add.replace('地址:',''),sight_slogen,sight_url])
        time.sleep(3)
    return sightlist,place

  • 这里把每个景点的所有信息都爬下来了(其实是为了练习使用xpath……)。
  • 使用了while循环,for循环的break的方式是发现无销量时给i值赋零,这样while循环也会同时结束。
  • 地址的匹配使用re.sub()函数去除了n多复杂信息,这点后面解释。
4.输出本地文本

为了防止代码运行错误,为了维护代码运行的和平,将输出的信息列表存入到excel文件中了,方便日后查阅,很简单的代码,需要了解pandas的用法。
def listToExcel(list,name):
    df = pd.DataFrame(list,columns=['景点名称','级别','所在区域','起步价','销售量','热度','地址','标语','详情网址'])
    df.to_excel(name + '景点信息.xlsx')

5.百度经纬度api

肥肠悲伤的,(ಥ﹏ಥ)我没找到去哪儿景点的经纬度,以为这次学(zhuang)习(bi)计划要就此流产了。(如果有人知道景点经纬度在哪里请告诉我)

但是,enhahhahahaha,我怎么会放弃呢,我又找到了百度经纬度api,网址:http://api.map.baidu.com/geocoder/v2/?address=地址&output=json&ak=百度密钥,修改网址里的“地址”和“百度密钥”,在浏览器打开,就可以看到经纬度的json信息。
#上海市东方明珠的经纬度信息
{"status":0,"result":{"location":{"lng":121.5064701060957,"lat":31.245341811634675},"precise":1,"confidence":70,"level":"UNKNOWN"}

百度密钥申请方法

这样我就可以根据爬到的景点地址,查到对应的经纬度辣!python获取经纬度json数据的代码如下。
def getBaiduGeo(sightlist,name):
    ak = '密钥'
    headers = {
    'User-Agent' :'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'
    }
    address = 地址
    url = 'http://api.map.baidu.com/geocoder/v2/?address=' + address  + '&output=json&ak=' + ak
    json_data = requests.get(url = url).json()
    json_geo = json_data['result']['location']

观察获取的json文件,location中的数据和百度api所需要的json格式基本是一样,还需要将景点销量加入到json文件中,这里可以了解一下json的浅拷贝和深拷贝知识,最后将整理好的json文件输出到本地文件中。
def getBaiduGeo(sightlist,name):
    ak = '密钥'
    headers = {
    'User-Agent' :'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'
    }
    list = sightlist
    bjsonlist = []
    ejsonlist1 = []
    ejsonlist2 = []
    num = 1
    for l in list:
        try:
            try:
                try:
                    address = l[6]
                    url = 'http://api.map.baidu.com/geocoder/v2/?address=' + address  + '&output=json&ak=' + ak
                    json_data = requests.get(url = url).json()
                    json_geo = json_data['result']['location']
                except KeyError,e:
                    address = l[0]
                    url = 'http://api.map.baidu.com/geocoder/v2/?address=' + address  + '&output=json&ak=' + ak
                    json_data = requests.get(url = url).json()
                    json_geo = json_data['result']['location']
            except KeyError,e:
                    address = l[2]
                    url = 'http://api.map.baidu.com/geocoder/v2/?address=' + address  + '&output=json&ak=' + ak
                    json_data = requests.get(url = url).json()
                    json_geo = json_data['result']['location']
        except KeyError,e:
            continue
        json_geo['count'] = l[4]/100
        bjsonlist.append(json_geo)
        ejson1 = {l[0] : [json_geo['lng'],json_geo['lat']]}
        ejsonlist1 = dict(ejsonlist1,**ejson1)
        ejson2 = {'name' : l[0],'value' : l[4]/100}
        ejsonlist2.append(ejson2)
        print '正在生成第' + str(num) + '个景点的经纬度'
        num +=1
    bjsonlist =json.dumps(bjsonlist)
    ejsonlist1 = json.dumps(ejsonlist1,ensure_ascii=False)
    ejsonlist2 = json.dumps(ejsonlist2,ensure_ascii=False)
    with open('./points.json',"w") as f:
        f.write(bjsonlist)
    with open('./geoCoordMap.json',"w") as f:
        f.write(ejsonlist1)
    with open('./data.json',"w") as f:
        f.write(ejsonlist2)

(╯’ - ‘)╯┻━┻

在设置获取经纬度的地址时,为了匹配到更准确的经纬度,我选择了匹配景点地址,然鹅,景点地址里有各种神奇的地址,带括号解释在XX对面的,说一堆你应该左拐右拐各种拐就能到的,还有英文的……于是就有了第三章中复杂的去除信息(我终于圆回来了!)。

然鹅,就算去掉了复杂信息,还有一些匹配不到的景点地址,于是我使用了嵌套try,如果景点地址匹配不到;就匹配景点名称,如果景点名称匹配不到;就匹配景点所在区域,如果依然匹配不到,那我……那我就……那我就跳过ㄒ_ㄒ……身为一个景点,你怎么能,这么难找呢!不要你了!

这里生成的三个json文件,一个是给百度地图api引入用的,另俩个是给echarts引入用的。

6.网页读取json文件

将第二章中所述的百度地图api示例中的源代码复制到解释器中,添加密钥,保存为html文件,打开就可以看到和官网上一样的显示效果。echarts需要在实例页面,点击页面右上角的EN切换到英文版,然后点击download demo下载完整源代码。

根据html导入json文件修改网页源码,导入json文件。
#百度地图api示例代码中各位置修改部分
<head>
    <script src="http://libs.baidu.com/jquery/2.0.0/jquery.js"></script>
</head>
<script type="text/javascript">
    $.getJSON("points.json", function(data){
        var points = data;
        script中原有函数;
        });
</script> 

这里使用了jQuery之后,即使网页调试成功了,在本地打开也无法显示网页了,在chrome中右键检查,发现报错提示是需要在服务器上显示,可是,服务器是什么呢?

百度了一下,可以在本地创建一个服务器,在终端进入到html文件所在文件夹,输入python -m SimpleHTTPServer,再在浏览器中打开http://127.0.0.1:8000/,记得要将html文件名设置成index.html哦~

7.后记

因为注册但没有认证开发者账号,所以每天只能获取6K个经纬度api(这是一个很好的偷懒理由),所以我选择了热门景点中前400页(每页15个)的景点,结果可想而知,(ಥ﹏ಥ)为了调试因为数据增多出现的额外bug,最终的获取的景点数据大概在4k5条左右(爬取时间为2017年09月10日,爬取关键词:热门景点,仅代表当时销量)。


这些地图上很火爆的区域,我想在国庆大概是这样的

这样的

还有这样的

将地图上热门景点的销量top20提取出来,大多数都是耳熟能详的地点,帝都的故宫排在了第一位,而大四川则占据了top5中的三位,而排在top20中也四川省就占了6位,如果不是因为地震,我想还会有更多的火爆的景点进入排行榜的~这样看来如果你这次国庆打算去四川的话,可以脑补到的场景就是:人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人人……

于是我又做了一个各城市包含热门景点数目的排行,没想到在4千多个热门景点中,数目最多的竟是我大浙江,是第二个城市的1.5倍,而北京作为首都也……可以说是景点数/总面积的第一位了。

这些城市有辣么多热门景点,都是些什么级别的景点呢?由下图看来,各城市的各级别景点基本与城市总热门景点呈正相关,而且主要由4A景区贡献而来。

既然去哪些地方人多,去哪里景多都已经知道了,那再看看去哪些地方烧得钱最多吧?下图是由各城市景点销售起步价的最大值-最小值扇形组成的圆,其中湖北以单景点销售起步价600占据首位,但也可以看到,湖北的景点销售均价并不高(在红色扇形中的藏蓝色线条)。而如果国庆去香港玩,请做好钱包减肥的心理和生理准备(•̀ω•́)✧。

好啦分析完啦,ヾ(*ΦωΦ)ツ大家可要好好玩呀。

PS:写了个网页,展示百度地图的热力图效果和echarts的景点排行榜,方便大家查看。http://easyinfo.online 源码已经上传到gayhub啦\~写完这篇文的时候发现echarts有针对python的模块可以引入,所以打算去学一下Django、Flask之类的web框架,最近会更一些纯理论的意识流文,大家一起进步吧~
  • 大小: 5.8 KB
  • 大小: 16.7 KB
  • 大小: 174.1 KB
  • 大小: 60.5 KB
  • 大小: 65.8 KB
  • 大小: 6.3 KB
  • 大小: 6.5 KB
  • 大小: 809.5 KB
  • 大小: 414.5 KB
  • 大小: 61.3 KB
  • 大小: 35.9 KB
  • 大小: 24.5 KB
  • 大小: 62.3 KB
  • 大小: 43.4 KB
  • 大小: 83.1 KB
  • 大小: 144.5 KB
  • 大小: 60.5 KB
  • 大小: 65.8 KB
3
0
评论 共 3 条 请登录后发表评论
3 楼 tedeum 2017-10-18 10:55
感觉不科学,数据源没选对
2 楼 华家小谁 2017-10-04 02:51
写的很不错。

得出结论还是,安心待家里。嘿嘿。

认真写博客ing

源码解析 http://www.iocoder.cn?iteye
1 楼 javasunnyboy 2017-10-01 11:18
深入浅出,值得学习。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • python爬虫去哪儿网_用python爬虫爬取去哪儿4500个热门景点,看看国庆不能去哪儿...

    所以这次的目标呢,是爬去哪儿网景点页面,并得到景点的信息,大家可以先思考下大概需要几步。1.百度的地图API和echarts这次正好爬的是数据,我决定用数据的好基友——图表来输出我爬取的数据,也就...

  • python爬图片1014无标题_我用Python爬取了全国4500个热门景点,告诉你国庆哪儿最堵?...

    分析去哪儿景点页的网址可得出结构:搜索地点®ion=&from=mplsearchsuggest&page=页数 这次没有用正则来匹配内容,而使用了xpath匹配,肥肠好用。 defgetList(): place=raw_input('请输入想搜索的区域、类型(如北京...

  • 国庆不去哪儿:用python爬虫爬取热门景点并生成热力图

    (咳咳,不能总更小白文,这样显得我不(mei)够(you)专(xue)业(xi))。金秋九月,丹桂飘香,在这秋高气爽,阳光灿烂的收获季节里,我们送走了一个个暑假余额耗尽哭着走向校园的孩籽们,又即将迎来一年一度伟大祖国母亲...

  • Python爬虫——去哪儿网评论

    由于疫情的影响,可能大家更加偏向于与家人在周边游~ 所以我们来到去哪儿网的周边游:https://dujia.qunar.com/p/around 界面如下: 可以看到,我们的周边游也有很多页的数据~如果我们需要去货比n家的话,当然是...

  • 国庆去哪玩?用Python爬取了全国5000家旅游景区(记得收藏)

    下面我用 Python 爬取了全国近5000个旅游景点,并结合pyecharts来做分析 技能包 爬虫 Mysql sqlalchemy pyecharts 数据爬取 旅游景点的数据是从网上爬取的,该数据包含以下维度:景点名称,所属省市区,景...

  • Python爬虫示例:爬取 13 个旅游城市,看看大家放假了都爱去哪玩

    心血来潮,就想爬一下大家假期最爱去哪玩,作为一个专业合格的程序员,我不想再宅家里了,我得规划一下下次出行了,哈哈哈,虽然还很遥远!不行明天就周六了嘛,我周六去玩!哈哈哈,也可以哟! 很多人假期时间充裕...

  • 用Python爬取了全国近5000家旅游景点,分析国庆去哪玩

    双节同庆,小长假如约而至我想今年大家在家都憋坏了这么长的假期,当然是出去 玩玩玩!每当长假的时候,有没有想起被人山人海支配的恐惧!该去哪些地方呢?我用 Python 爬取了全国近 500...

  • 8天长假快来了,Python分析【去哪儿旅游攻略】数据,制作可视化图表

    2023年的中秋节和国庆节即将来临,好消息是,它们将连休8天!这个长假为许多人提供了绝佳的休闲机会,让许多人都...今天我们来分析下去哪儿的旅游攻略数据,看看吃、住、游玩在价位合适的情况下,怎样才能玩的开心。

  • 爬取去哪儿网 6000 多个景点数据告诉你,国庆哪里不是人山人海!

    国庆长假已经过去一半啦,朋友们有多少是堵在了景区和路上?为了方便大家的出游选择,笔者爬取了去哪儿网上面的 6000 多个景点数据,包含景点评级、热度、销量等等数据,汇总成...

  • 国庆小长假来点不一样的,如何用Python爬取了全国近5000家旅游景点,一起来看

    下面我用 Python 爬取了全国近 5000 个旅游景点,并结合 pyecharts 来做分析 技能包 爬虫 Mysql sqlalchemy pyecharts 数据爬取 旅游景点的数据是从网上爬取的,该数据包含以下维度:景点名称...

  • 基于C语言+AT89C52单片机搭建的PID直流电机控制程序,用于Proteus电路仿真+源码+开发文档(高分优秀项目)

    基于C语言+AT89C52单片机搭建的PID直流电机控制程序,用于Proteus电路仿真+源码+开发文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 项目简介: 本文所介绍的基于AT89C52单片机的PID直流电机控制系统设计过程主要分为MATLAB建模、Proteus硬件电路的设计以及基于C51语法的单片机程序开发编写。本系统性质为单闭环控制,即通过转速对电机进行调速;将采用增量式编码器进行电机转速的测量,并设定PWM波形生成的开关频率为7KHz,速度回路的采样周期为14ms。 1. 所需仿真平台 单片机部分代码主要利用Keil uVision5平台进行编译,工具链采用C51。仿真电路搭建平台为Proteus 8 Professional。 2. Release版本 编译后的运行环境为Atmel AT89C52单片机平台。 3. 运行 将已发布的HEX文件放入Proteus 8 Professional仿真平台或以上版本内运行即可; 可通过修改Proteus仿真文件方波的频率(开关频率)来改变PWM相应的频率;

  • 基于.net8的物料管理系统

    {FB0886BF-35E0-480F-8B15-E4D52B351628}

  • Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar

    Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar

  • 微信小程序-模仿知乎.rar

    微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎.rar微信小程序-模仿知乎

  • 基于FreeRTOS+STM32CubeMX+LCD1602+MCP6S28的8通道模拟可编程增益放大器Proteus仿真

    基于FreeRTOS+STM32CubeMX+LCD1602+MCP6S28的8通道模拟可编程增益放大器Proteus仿真

  • srs5.0 r2版本,gb28181流媒体服务软件

    srs5.0 r2版本,gb28181流媒体服务软件

  • 基于java的教务系统小程序源码.zip

    提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

  • 基于Vue和Java的LBS客户流量分析系统设计源码

    LBS客户流量分析系统项目源码,共191个文件,采用Vue、JavaScript、CSS和HTML等语言开发,涉及多种文件类型如Vue组件、PNG图片、JSON配置文件、JavaScript脚本、JPG图片、CSS样式表、BABEL配置文件、EDITORCONFIG文件、ESLINTIGNORE文件和GIT忽略文件等。该项目是一个基于Vue和Java的LBS客户流量分析系统设计,旨在提供一个高效、稳定的新客流产品解决方案。

  • grpcio-1.34.1-cp36-cp36m-manylinux2014_i686.whl

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

  • 对人脸图像进行性别和年龄的判断

    对人脸图像进行性别和年龄的判断

Global site tag (gtag.js) - Google Analytics